package com.yfp.common.core.domain;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.io.Serializable;
import java.util.List;

@Data
public class LogisticsInfoVO implements Serializable {

    private static final long serialVersionUID = 3181959225683185762L;

    /**
     * 快递单号
     */
    @Schema(description = "快递单号")
    private String number;

    /**
     * 快递公司类型
     */
    @Schema(description = "快递公司类型")
    private String type;

    /**
     * 物流轨迹列表
     */
    @Schema(description = "物流轨迹列表")
    private List<LogisticsDetail> list;

    /**
     * 配送状态，0：快递收件(揽件) 1.在途中 2.正在派件 3.已签收 4.派送失败 5.疑难件 6.退件签收
     */
    @Schema(description = "配送状态，0：快递收件(揽件) 1.在途中 2.正在派件 3.已签收 4.派送失败 5.疑难件 6.退件签收")
    private String deliverystatus;

    /**
     * 是否签收，1.是 0.否
     */
    @Schema(description = "是否签收，1.是 0.否")
    private String issign;

    /**
     * 快递公司名称
     */
    @Schema(description = "快递公司名称")
    private String expName;

    /**
     * 快递公司官网
     */
    @Schema(description = "快递公司官网")
    private String expSite;

    /**
     * 快递公司电话
     */
    @Schema(description = "快递公司电话")
    private String expPhone;

    /**
     * 快递员或快递站名称
     */
    @Schema(description = "快递员或快递站名称")
    private String courier;

    /**
     * 快递员电话
     */
    @Schema(description = "快递员电话")
    private String courierPhone;

    /**
     * 快递轨迹信息最新时间
     */
    @Schema(description = "快递轨迹信息最新时间")
    private String updateTime;

    /**
     * 发货到收货消耗时长 (截止最新轨迹)
     */
    @Schema(description = "发货到收货消耗时长 (截止最新轨迹)")
    private String takeTime;

    /**
     * 快递公司LOGO
     */
    @Schema(description = "快递公司LOGO")
    private String logo;

    /**
     * 物流轨迹详细信息类
     */
    @Data
    public static class LogisticsDetail {
        /**
         * 时间
         */
        @Schema(description = "时间")
        private String time;

        /**
         * 状态描述
         */
        @Schema(description = "状态描述")
        private String status;
    }
}
